package com.pureut.storage.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pureut.storage.domain.PickingPurchase;
import com.pureut.storage.dto.*;
import com.pureut.storage.export.PickingPurchaseExport;
import com.pureut.storage.vo.GetDataByCodeVo;
import com.pureut.storage.vo.PickingPurchaseVo;
import com.sale.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 采购退货Mapper
 * @author: CM
 * @date: 2022/12/30    13:51
 */
@Mapper
public interface PickingPurchaseMapper extends BaseMapperPlus<PickingPurchaseMapper, PickingPurchase,PickingPurchase> {

    /**
     * 采购退货列表
     * @param pickingPurchaseVo
     * @return
     */
    Page<PickingPurchaseDto> getPickingPurchaseList(@Param("page") Page<PickingPurchaseDto> page, @Param("pickingPurchaseVo") PickingPurchaseVo pickingPurchaseVo);

    /**
     * 采购退货查看
     * @param id
     * @return
     */
    PickingPurchaseDto getPickingPurchaseById(@Param("id" ) Long id);


    List<GetPdaDto> getPickingPurchaseListPda(PickingPurchaseVo pickingPurchaseVo);

    /**
     * 采购退货交接列表
     * @param deptId
     * @return
     */
    List<AndroidHandoverPdaDto> getAndroidHandoverList(Long deptId);

    AndroidHandoverPdaDto getAndroidHandoverView(Long id);

    /**
     * 导出
     * @param pickingPurchaseVo
     * @return
     */
    List<PickingPurchaseExport> getInfoExport(PickingPurchaseVo pickingPurchaseVo);

    /**
     * 财务-核销单 通过获取未全部核销的采购退货单
     */
    List<ImparityDto> getNoVerificationList(@Param("getDataByCodeVo") GetDataByCodeVo getDataByCodeVo);

    /**
     * 查询采购退货单据数据（结账反结账使用）
     */
    List<PickingPurchaseDto> getQClosingDocument(String time);

    /**
     * 查询采购退货单据数据（结账反结账使用）
     */
    List<PickingPurchaseDto> getRClosingDocument(String time);

    /**
     * 采购退货Pda交接列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidHandoverPdaDto> getHandoverList(@Param("deptId") Long deptId,@Param("page") Page<AndroidHandoverPdaDto> page);
}
